import datetime
import os
import sys

from selenium import webdriver #导入库里
from selenium.webdriver.chrome import service #用什么服务来打开Chrome浏览器?
from selenium.webdriver.chrome.service import Service #获取服务的方法?
from webdriver_manager.chrome import ChromeDriverManager


#创建一个driver对象
class Driver:
    driver="" #driver成员变量

    def __init__(self): #Driver对象的初始化
        self.driver=webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=webdriver.ChromeOptions())
        self.driver.implicitly_wait(2) #隐式等待两秒
    def getScreenShort(self): #定义一个截图方法
        dirname=datetime.datetime.now().strftime("%Y%m%d")

        #如果对应日期不存在创建日期文件夹
        if not os.path.exists("../image/"+dirname):
            os.mkdir("../image/"+dirname)
        filename=("../image/"+dirname+"/"+
                  sys._getframe().f_back.f_code.co_name+
                  "-"+datetime.datetime.now().strftime("%Y%m%d-%H%M%S")+".png")
        self.driver.save_screenshot(filename)
#共用一个对象
BlogDriver=Driver()

#定义一个随机生成用户名的方法
import random
import string
def generate_username(length=8, use_digits=True, use_special_chars=False):
    """
    生成随机用户名
    :param length: 用户名长度，默认8位
    :param use_digits: 是否包含数字
    :param use_special_chars: 是否包含特殊字符
    :return: 随机生成的用户名
    """
    # 定义字符集
    letters = string.ascii_letters
    digits = string.digits if use_digits else ''
    special_chars = '!@#$%^&*()_+-=[]{}|;:,.<>?' if use_special_chars else ''

    # 组合字符集
    all_chars = letters + digits + special_chars

    # 确保至少包含一个字母
    username = random.choice(letters)

    # 生成剩余部分
    for _ in range(length - 1):
        username += random.choice(all_chars)

    return username
